// 类型断言
// 类型断言可以用来手动指定一个值的类型，即允许变量从一种类型更改为另一种类型。
let anyStr: any = 'hello typescript'
// 现在需要求anyStr的长度
// let strLen: number = anyStr.length
// 虽然是可以正确算出长度，但是使用.length的时候没有提示

// 可以使用类型断言
// 方式1.使用 as 转为string类型
// let strLen: number = (anyStr as string).length
// 方式2.使用<> 转为string类型
let strLen: number = (<string>anyStr).length
console.log('strLen', strLen)
console.log('---------------------------------')

// 变量声明
// var [变量名] : [类型] = 值
const uname: string = '潇洒哥'
const score1: number = 99
const score2: number = 100
const sum: number = score1 + score2
console.log('uname', uname)
console.log('科目一的成绩为：', score1)
console.log('科目二的成绩为：', score2)
console.log('总成绩为：', sum)
console.log('---------------------------------')

// 类型推断
let num = 5 // 未给变量名指定值，类型推断为 number
console.log('num变量的值为' + num)
// num = '666' // 编译报错，因为此时num为number类型 不能把string类型赋值给number类型
